package xyz.riceball.beans;

import xyz.riceball.exception.BeanDefinitionRegistryException;

/**
 * <p>
 *
 * </p>
 *
 * @author xiaovcloud
 * @since 2021/6/29 19:45
 */
public interface BeanDefinitionRegistry {
    /**
     * 注册bean定义
     *
     * @param beanName       bean的名字
     * @param beanDefinition bean的定义
     * @throws BeanDefinitionRegistryException 。
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionRegistryException;

    /**
     * 获取bean定义
     *
     * @param beanName bean名字
     * @return
     */
    BeanDefinition getBeanDefinition(String beanName);

    /**
     * 判断是否包含bean定义
     *
     * @param beanName bean名字
     * @return 是否包含bean定义
     */
    boolean containsBeanDefinition(String beanName);
}
